如果您在這里徘徊,那么我不需要向您解釋為什么執(zhí)行 MySQL 數(shù)據(jù)庫(kù)的定期備份對(duì)于防止任何數(shù)據(jù)丟失至關(guān)重要。許多人問的關(guān)鍵問題是在哪里存儲(chǔ)這些備份。特別是在處理需要大量存儲(chǔ)空間的大型數(shù)據(jù)庫(kù)時(shí),由于其可擴(kuò)展性和低成本,對(duì)象存儲(chǔ)是首選解決方案。
在本文中,我們將向您展示如何直接從命令行將MySQL 數(shù)據(jù)庫(kù)備份到與Contabo S3 兼容的對(duì)象存儲(chǔ)。這要?dú)w功于 Contabo 對(duì)象存儲(chǔ)與 AWS CLI(亞馬遜網(wǎng)絡(luò)服務(wù)命令行界面)兼容。
不要驚訝于本指南比您可以在網(wǎng)上找到的許多其他指南短得多。這要?dú)w功于 AWS CLI,它使 Contabo 對(duì)象存儲(chǔ)的配置比使用其他存儲(chǔ)解決方案更容易。
此外,由于上述 S3 兼容性,將備份文件從 Linux 服務(wù)器傳輸?shù)綄?duì)象存儲(chǔ)非常容易。
如果您從未聽說過 Contabo Object Storage,可以在此處了解更多信息。
先決條件/要求
為了執(zhí)行 MySQL 數(shù)據(jù)庫(kù)的備份,需要以下內(nèi)容:
- 手頭有這些憑據(jù)的 S3 兼容對(duì)象存儲(chǔ):
- 您的訪問密鑰
- 你的秘鑰
- 您的 S3 網(wǎng)址
- AWS CLI 已經(jīng)安裝(并配置)在運(yùn)行 MySQL 數(shù)據(jù)庫(kù)的服務(wù)器上。
如果您想了解如何在您的服務(wù)器上安裝和配置 AWS CLI,請(qǐng)?jiān)诖颂幉榭次覀兊奈臋n。
創(chuàng)建數(shù)據(jù)庫(kù)的備份
在將 MySQL 數(shù)據(jù)庫(kù)的備份上傳到對(duì)象存儲(chǔ)之前,您需要先創(chuàng)建一個(gè)本地備份。
幸運(yùn)的是,這可以通過 MySQL 的內(nèi)置命令來完成:
mysqldump –u [username] -p[password] [database_name] > backup.sql
根據(jù)數(shù)據(jù)庫(kù)的大小,此過程可能需要一段時(shí)間。
將[username]和[password]替換為您的 MySQL 實(shí)例登錄數(shù)據(jù)。
將[database_name]替換為您要備份的數(shù)據(jù)庫(kù)的名稱。
“?backup.sql?”是您的備份名稱。如果你愿意,你可以給它一個(gè)不同的名字。
上傳您的數(shù)據(jù)庫(kù)備份
要將數(shù)據(jù)庫(kù)的本地備份上傳到 Contabo 對(duì)象存儲(chǔ),請(qǐng)使用以下命令:
aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用 Cron 計(jì)劃定期數(shù)據(jù)庫(kù)備份
要安排某個(gè)數(shù)據(jù)庫(kù)的定期備份,您需要做兩件事:
1.創(chuàng)建一個(gè)shell腳本
首先,我們將創(chuàng)建一個(gè) shell 腳本,該腳本將創(chuàng)建某個(gè)數(shù)據(jù)庫(kù)的本地備份,并使用 AWS CLI 將此備份上傳到 Contabo 對(duì)象存儲(chǔ)。
為此,請(qǐng)使用此命令創(chuàng)建腳本:
nano database-to-os.sh
并粘貼以下內(nèi)容:
#!/bin/bash? mysqldump –u [username] -p[password] [database_name] > backup.sql? aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用[CTRL]?+?O保存腳本并使用[CTRL]?+?X退出編輯器
現(xiàn)在使用此命令使腳本可執(zhí)行:
chmod +x database-to-os.sh
2.編輯crontab文件
現(xiàn)在打開 Crontab 文件,您可以在其中使用以下命令安排備份:
crontab -e
并粘貼以下內(nèi)容:
0 3 * * * /[path_to_script]/databse-to-os.sh
使用此腳本,將在每天凌晨 3:00 執(zhí)行數(shù)據(jù)庫(kù)備份。如果您想要不同的時(shí)間表,只需更改粘貼的內(nèi)容即可。有關(guān) Cron 語(yǔ)法的更多信息可以在文件本身中找到。
結(jié)論
總之,使用 AWS CLI 將 MySQL 數(shù)據(jù)庫(kù)備份到對(duì)象存儲(chǔ)是一個(gè)簡(jiǎn)單高效的過程,可以為重要數(shù)據(jù)提供額外的保護(hù)層。借助 AWS CLI 和本文中概述的命令,用戶可以輕松地自動(dòng)執(zhí)行備份過程、安排定期備份并將備份安全地存儲(chǔ)在對(duì)象存儲(chǔ)中。